﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HR.Appointments.Service.DataAccessLayer
{
    /// <summary>
    /// Gets the activities from the database
    /// </summary>
    public interface IActivityDAO
    {
        /// <summary>
        /// Deletes an activity from the database
        /// </summary>
        /// <param name="companyId">Company identifier</param>
        /// <param name="activityId">Activity identifier</param>
        void Delete(int companyId, int activityId);

        /// <summary>
        /// Inserts an activity to the database
        /// </summary>
        /// <param name="activity">A valid entity</param>
        void Insert(ActivityEntity activity);

        /// <summary>
        /// Updates an activity to the database
        /// </summary>
        /// <param name="activity">A valid activity</param>
        void Update(ActivityEntity activity);

        /// <summary>
        /// Get a activity from the database
        /// </summary>
        /// <param name="activityId">Activity identifier</param>
        /// <returns>A loaded activity</returns>
        ActivityEntity GetInstance(int activityId);

        /// <summary>
        /// Gets a list of activity registered to a specific company
        /// </summary>
        /// <param name="companyId">Company identifier</param>
        /// <returns>A list of loaded activities</returns>
        List<ActivityEntity> GetByCompany(int companyId);
    }
}
